package com.sky.config;

import com.sky.properties.AliOssProperties;
import com.sky.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 *配置文件 完成aliossUtils工具类的初始化
 */
@Configuration
@Slf4j
public class AliOssConfig {
    /**
     * 1.因为需要在项目启动时就需要调用方法完成初始化
     * 所以把它交给spring管理
     * 2.因为AliOssProperties已经交给spring容器在管理
     * 而且可以直接从配置项获取值来初始化
     * 3.@ConditionalOnMissingBean保证只有util对象 因为一个就够了
     * @param properties
     * @return
     */
    @Bean
    @ConditionalOnMissingBean
    public AliOssUtil initAliOssUtil(AliOssProperties properties){
        log.info("开始阿里云oss初始化{}",properties);
        return new AliOssUtil(properties.getEndpoint(),
                properties.getAccessKeyId(),
                properties.getAccessKeySecret(),
                properties.getBucketName());
    }
}
